namespace DYH.Extensions.CAD.Tools.Cad;

/// <summary>
/// 提供对CAD数据库对象的操作工具方法
/// </summary>
public static class DBObjectTool
{
    /// <summary>
    /// 亮显指定的实体列表
    /// </summary>
    /// <param name="entList">需要亮显的实体集合</param>
    public static void Highlight(this IEnumerable<Entity> entList)
    {
        foreach (var ent in entList)
        {
            try
            {
                ent.Highlight();
            }
            catch
            {
                // ignore
            }
        }
    }

    /// <summary>
    /// 取消亮显指定的实体列表
    /// </summary>
    /// <param name="entList">需要取消亮显的实体集合</param>
    public static void UnHighlight(this IEnumerable<Entity> entList)
    {
        foreach (var ent in entList)
        {
            try
            {
                ent.Unhighlight();
            }
            catch
            {
                // ignore
            }
        }
    }

    /// <summary>
    /// 释放指定的实体列表资源
    /// </summary>
    /// <param name="entList">需要释放的实体集合</param>
    public static void Dispose(this IEnumerable<Entity> entList)
    {
        foreach (var ent in entList)
        {
            try
            {
                if (!ent.IsNewObject || ent.IsDisposed)
                    continue;
                ent.Dispose();
            }
            catch
            {
                // ignore
            }
        }
    }
}
